home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmigaPlus / Tools / Development / renderlib40 / src / rnd_scale.h < prev   
Encoding:
C/C++ Source or Header  |  2002-12-21  |  887 b   |  37 lines

  1.  
  2. #ifndef _RND_SCALE_H
  3. #define _RND_SCALE_H
  4.  
  5. #include <utility/tagitem.h>
  6. #include <exec/memory.h>
  7. #include "rnd_memory.h"
  8.  
  9. struct ScaleData
  10. {
  11.     APTR data;
  12.     LONG cy;
  13.     FLOAT sourcey;
  14.     FLOAT deltax, deltay;
  15. };
  16.  
  17. typedef struct ScaleEngine
  18. {
  19.     RNDMH *rmh;
  20.     void (*scalefunc)(struct ScaleEngine *, struct ScaleData *, APTR, APTR, LONG, WORD);
  21.     BOOL (*initfunc)(struct ScaleEngine *, struct ScaleData *);
  22.     void (*exitfunc)(struct ScaleEngine *, struct ScaleData *);
  23.     UWORD sw, sh, dw, dh;
  24.     WORD coords[8];
  25.     UWORD format;
  26.     UWORD usecoords;
  27.     UWORD bpp;            /* bytes per pixel */
  28.  
  29. } RNDSCALE;
  30.  
  31. LIBAPI RNDSCALE *CreateScaleEngineA(UWORD sw, UWORD sh, UWORD dw, UWORD dh, struct TagItem *tags);
  32. LIBAPI void DeleteScaleEngine(RNDSCALE *engine);
  33. LIBAPI ULONG ScaleA(RNDSCALE *sce, UBYTE *src, UBYTE *dst, struct TagItem *tags);
  34. LIBAPI UWORD ScaleOrdinate(UWORD start, UWORD dest, UWORD ordinate);
  35.  
  36. #endif
  37.